// 1、安装 mongoose 操作数据库工具：npm install mongoose
// 2、导入 mongoose 工具
const mongoose = require('mongoose')

/**
 * 3、连接 mongobd 数据库
 *      协议名称://ip地址:端口号/数据库
 */
mongoose.connect('mongodb://127.0.0.1:27017/abc_vue_koa2_hotai')

/**
 * 4、设置回调
 */
// 与数据库连接成功的回调
mongoose.connection.once('open', async () => {
    console.log("连接成功");
    //  5、创建文档结构对象、用于约束文档的属性及属性值的类型
    let BookSchema = new mongoose.Schema({
        name: String,
        age: Number,
        sex: Number,
    })
    /**
     * 6、创建集合、返回一个用于操作文档的封装对象
     *      参数一：集合名
     *      参数二：文档结构
     */
    const BookModel = mongoose.model('books', BookSchema)

    /**
     * 7、操作文档 新增
     *    create 参数一：要新增到文档的数据
     *           参数二：新增文档后的回调、成功data 失败err
     */
    let data = { name: 'wangwu', age: 25, sex: 1 }
    try {
        let res = await BookModel.create(data)
        console.log("插入成功", res);
    } catch (err) {
        console.log("插入成功", err);
    }

    // 8、关闭数据库连接（在项目中不会关闭）
    mongoose.disconnect()
})
// 与数据库连接失败的回调
mongoose.connection.once('error', () => {
    console.log("连接失败");
})
// 与数据库连接关闭的回调
mongoose.connection.once('close', () => {
    console.log("连接关闭");
})